package ve.com.wayoyo.wuml_case.DibujoDiagramas;

import ve.com.wayoyo.wuml_case.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;

public class SeleccionarMetodoComponente extends Dialog {

	private LinearLayout _metodo;
	private ArrayAdapter<String> _dataAdapter;
	private String _tipoComponente;
	private String _tipoSeleccion;

	public SeleccionarMetodoComponente(Context context,
			ArrayAdapter<String> dataAdapter, String tipoComponente,
			String tipoSeleccionar) {
		super(context);
		// _listaComponente =
		// ((CompClase)VistaDiagrama.getVista().getDiagrama().getSelectedItem()).get_metodos();
		this._dataAdapter = dataAdapter;
		this._tipoComponente = tipoComponente;
		this._tipoSeleccion = tipoSeleccionar;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.seleccion_metodo_layout);
		if (_tipoSeleccion.equals("modificar"))
			setTitle("Seleccione el Metodo a Modificar");
		if (_tipoSeleccion.equals("eliminar"))
			setTitle("Seleccione el Metodo a Eliminar");
		setCanceledOnTouchOutside(true);
		_metodo = (LinearLayout) findViewById(R.id.seleccionMetodosLayout);
		_metodo.removeAllViewsInLayout();
		ListView vistaListaAtributo = new ListView(getContext());
		vistaListaAtributo.setAdapter(_dataAdapter);
		if (this._tipoSeleccion.equals("modificar"))
			vistaListaAtributo
					.setOnItemClickListener(new OnItemClickListener() {
						public void onItemClick(AdapterView<?> parent,
								View view, int position, long id) {
							SeleccionarMetodoComponente.this.dismiss();
							ModificarMetodoComponente myDialog = new ModificarMetodoComponente(
									getContext(), position, _tipoComponente);
							myDialog.show();
						}
					});
		else if (this._tipoSeleccion.equals("eliminar"))
			vistaListaAtributo
					.setOnItemClickListener(new OnItemClickListener() {
						public void onItemClick(AdapterView<?> parent,
								View view, int position, long id) {
							SeleccionarMetodoComponente.this.dismiss();
							if (_tipoComponente.equals("Clase")) {
								((CompClase) VistaDiagrama.getVista()
										.getDiagrama().getSelectedItem())
										.eliminarMetodo(position);
								((CompClase) VistaDiagrama.getVista()
										.getDiagrama().getSelectedItem())._height = ((CompClase) VistaDiagrama
										.getVista().getDiagrama()
										.getSelectedItem())._height - 30;
							} else if (_tipoComponente.equals("Interface")) {
								((CompInterface) VistaDiagrama.getVista()
										.getDiagrama().getSelectedItem())
										.eliminarMetodo(position);
								((CompInterface) VistaDiagrama.getVista()
										.getDiagrama().getSelectedItem())._height = ((CompInterface) VistaDiagrama
										.getVista().getDiagrama()
										.getSelectedItem())._height - 30;
							} else if (_tipoComponente.equals("Abstract")) {
								((CompAbstract) VistaDiagrama.getVista()
										.getDiagrama().getSelectedItem())
										.eliminarMetodo(position);
								((CompAbstract) VistaDiagrama.getVista()
										.getDiagrama().getSelectedItem())._height = ((CompAbstract) VistaDiagrama
										.getVista().getDiagrama()
										.getSelectedItem())._height - 30;
							}

							VistaDiagrama.getVista().invalidate();
						}
					});

		_metodo.addView(vistaListaAtributo);

	}

}
